#!/usr/bin/env bash
#/ Usage: script/publish
#/
#/ Build a docker image of the semantic CLI and publish to the GitHub Package Registry

set -e
cd $(dirname "$0")/..

VERSION="0.9.0.0"
BUILD_SHA=$(git rev-parse HEAD 2>/dev/null)
DOCKER_IMAGE=docker.pkg.github.com/github/semantic/semantic

# Set the version to the current commit sha
SED_ARGS="-i"
if [[ "$(uname -s)" = "Darwin" ]]; then
  SED_ARGS="$SED_ARGS .bak"
fi
sed $SED_ARGS "s/buildSHA =.*/buildSHA = \"$BUILD_SHA\"/" src/Semantic/Version.hs

# Build
docker build -t $DOCKER_IMAGE .

# Make sure semantic is in the image.
docker run --rm $DOCKER_IMAGE --version

read -p "Do you want to publish to the GitHub Registry [y/n]? " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
  # Requires that you've logged in to the GPR (e.g. `docker login docker.pkg.github.com`)
  # https://help.github.com/en/articles/configuring-docker-for-use-with-github-package-registry
  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:latest
  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:$VERSION
  docker tag $DOCKER_IMAGE $DOCKER_IMAGE:sha_$BUILD_SHA
  docker push $DOCKER_IMAGE:sha_$BUILD_SHA
  docker push $DOCKER_IMAGE:$VERSION
  docker push $DOCKER_IMAGE:latest
fi
